"""
实战1 原始需求
第一个类Bicycle(自行车)类
run() 方法，打印骑行公里数
第二个类EBicycle继承自Bicycle
volume（电量）属性
fill_charge(vol) 充电方法
run()方法用于骑行,每骑行10km消耗电量1度 ,
当电量消耗尽时调用Bicycle的run方法骑行，
 通过传入的骑行里程数，显示骑行结果
"""

class Bike:
    def run(self, miles):
        print(f"脚踩了{miles}公里，好累呀")

class Ebike(Bike):
    volume = 10

    def fill_charge(self, vol):
        """
        :param vol: 充电电量
        :return:
        """
        # 如果在方法内获取类变量,通过self. 进行获取
        self.volume = self.volume + vol
        print(f"充电之后的电量为{self.volume}")

    def run(self, miles):
        """
        run()方法用于骑行,每骑行10km消耗电量1度 ,
        当电量消耗尽时，
        调用Bike的run方法骑行，
        通过传入的骑行里程数，显示骑行结果
        :param miles: 总共骑行的里程数
        :return:
        """
        # 通过电量自动骑行的里程数
        vol_miles = self.volume * 10
        # 判断电量是能够耗尽
        if vol_miles>=miles:
            # 当自动骑行的里程数大于总里程数
            print(f"自动骑行了{miles}")
        else:
            # 电量已经耗尽了，需要用脚踩自行车
            print(f"自动骑行了{vol_miles}公里")
            # print(f"脚踩的里程数为{miles-vol_miles}")
            # 通过self. 子类可以调用父类的方法
            # self.run(miles-vol_miles)
            # 如果方法重写，还想调用父类的方法
            super().run(miles-vol_miles)


e_bike = Ebike()
e_bike.run(1000)